#include "factoriaelementosimpresion.h"
#include "elementocolumna.h"
#include "elementoimpresion.h"
#include "elementotexto.h"

FactoriaElementosImpresion::FactoriaElementosImpresion()
{

}

FactoriaElementosImpresion::~FactoriaElementosImpresion()
{

}

ElementoImpresion* FactoriaElementosImpresion::crearElementoColumna(double porcentajeFinColumna)
{    
    return new ElementoColumna(porcentajeFinColumna);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoTexto(QString texto)
{
    return new ElementoTexto(texto);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoImagen(QString nombreImagen, int ancho /* = -1*/, int alto/* = -1*/)
{
    return new ElementoImagen(nombreImagen, ancho, alto);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoImagen(QImage& imagen, double ancho, double alto)
{
    return new ElementoImagen(imagen, ancho, alto);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoPixmap(QPixmap& pixmap, double ancho, double alto)
{
    return new ElementoPixmap(pixmap, ancho, alto);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoNumeroPagina()
{
    return new ElementoNumeroPagina();
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoSaltoDeLinea()
{
    
    return new ElementoSaltoDeLinea();    
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoLineaHorizontal()
{
    return new ElementoLineaHorizontal();
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoAvanceVertical(double avance)
{
    return new ElementoAvanceVertical(avance);    
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoModoParrafo()
{
    return new ElementoModo(MODO_PARRAFO);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoModoLinea()
{
    return new ElementoModo(MODO_LINEA);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoModoTabla()
{
    return new ElementoModo(MODO_TABLA);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoSaltoDePagina()
{
    return new ElementoSaltoDePagina();    
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoInterlineado(double interlineado)
{
    return new ElementoInterlineado(interlineado);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoMargenCeldas(double margen)
{
    return new ElementoMargenCeldas(margen);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoColor(QColor color)
{
    return new ElementoColor(color);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoGrosorTrazo(double grosor)
{
    return (new ElementoGrosorTrazo(grosor));
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoNombreFuente(QString nombreFuente)
{
    return new ElementoNombreFuente(nombreFuente);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoTamanoFuente(double tamanoFuente)
{
    return (new ElementoTamanoFuente(tamanoFuente));
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoNegrita(bool activar)
{
    return new ElementoNegrita(activar);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoCursiva(bool activar)
{
   return new ElementoCursiva(activar);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoSubrayado(bool activar)
{
   return new ElementoSubrayado(activar);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoAlineacionHorizontal(int alineacion)
{
    return new ElementoAlineacionHorizontal(alineacion);
}

ElementoImpresion* FactoriaElementosImpresion::crearElementoAlineacionVertical(int alineacion)
{
    return new ElementoAlineacionVertical(alineacion);
}